package com.mukefile.dao;

import com.mukefile.dto.DeleteFileDto;
import com.mukefile.pojo.UserFile;
import com.mukefile.pojo.UserFolder;

import java.util.List;

/**
 * 用户操作文件数据访问层接口
 * @author xinke.huang@hand-china.com
 * @version 1.0
 * @date 2021/2/10
 */
public interface UserFileDao {
    /**
     * 插入一条文件夹数据
     * @param folder 文件夹对象
     * @return
     */
    int insertFolder(UserFolder folder);

    /**
     * 修改文件夹名
     * @param folder 文件夹
     */
    void updateFolderName(UserFolder folder);

    /**
     * 修改文件名
     * @param file 文件
     */
    void updateFileName(UserFile file);

    /**
     * 查询所有文件及文件夹
     * @param userId
     * @param pid
     * @param limitStart
     * @param limitEnd
     * @return
     */
    List<Object[]> selectAllFolderAndFile(Integer userId,Long pid,Integer limitStart,Integer limitEnd);

    /**
     * 查询userId用户的文件及文件夹的总数
     * @param userId
     * @param pid
     * @return
     */
    long selectFolderAndFileCount(Integer userId,Long pid);

    /**
     * 根据id查询文件夹对象
     * @param id
     * @return
     */
    UserFolder selectFolderById(Long id);

    /**
     * 根据id查询userFile
     * @param id
     * @return
     */
    UserFile selectUserFileById(Long id);

    /**
     * 批量修改文件状态[删除状态]
     * @param list
     * @param deleted
     */
    void batchUpdateFiles(List<DeleteFileDto> list,String deleted);


}
